//package com.funny.learning.english.db;
//
//import java.util.ArrayList;
//
//import com.funny.learning.english.api.Define;
//import com.funny.learning.english.model.GameEntity;
//
//import android.content.ContentValues;
//import android.content.Context;
//import android.database.Cursor;
//import android.database.SQLException;
//import android.database.sqlite.SQLiteDatabase;
//import android.util.Log;
//
//public class ContactDaoImpl extends ContactDatabaseHelper implements ContactDAO {
//	// Database fields
//		private SQLiteDatabase database;
//		
//		private String TAG = "ContactDaoImpl";
//
//		public ContactDaoImpl(Context context) {
//			super(context);
//		}
//
//		private void open() throws SQLException {
//			database = getWritableDatabase();
//		}
//
//		@Override
//		public synchronized void close() {
//			super.close();
//			if (database.isOpen())
//				database.close();
//		}
//
//		@Override
//		public ArrayList<GameEntity> getLstGame(String tableName, String byTopic,
//				String bySubtopic, String byGame) {
//			open();
//			
//			ArrayList<GameEntity> gameEntities = new ArrayList<GameEntity>();
//			String selectQuery = "SELECT  * FROM " + tableName;
//			Cursor cursor = database.rawQuery(selectQuery, null);
//
//			// looping through all rows and adding to list
//			if (cursor.moveToFirst()) {
//				do {
//					GameEntity gameEntity = new GameEntity();
//					gameEntity.setDate(cursor.getInt(cursor.getColumnIndex(DBDefine.COLUMN_GAME_DATE)));
//					gameEntity.setIdKey(cursor.getInt(cursor.getColumnIndex(DBDefine.COLUMN_GAME_ID_KEY)));
//					gameEntity.setIid(cursor.getInt(cursor.getColumnIndex(DBDefine.COLUMN_GAME_IID)));
//					gameEntity.setDefinition(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_definition)));
//					gameEntity.setName(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_name)));
//					gameEntity.setSearchEN(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_searchEN)));
//					gameEntity.setSearchVI(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_searchVI)));
//					gameEntity.setUrl(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_url)));
//					gameEntity.setId(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_id)));
//					gameEntity.setLname(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_lname)));
//					gameEntity.setLaudio(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_laudio)));
//					gameEntity.setLphonetics(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_lphonetics)));
//					gameEntity.setLcontext(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_lcontext)));
//					gameEntity.setLreminiscence(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_lreminiscence)));
//					gameEntity.setLdefinition(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_ldefinition)));
//					gameEntity.setSlugTopic(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_slugTopic)));
//					gameEntity.setSlugSubTopic(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_slugSubTopic)));
//					gameEntity.setSlugGameType(cursor.getString(cursor.getColumnIndex(DBDefine.COLUMN_GAME_slugGameType)));
//					// Adding contact to list
//					gameEntities.add(gameEntity);
//				} while (cursor.moveToNext());
//			}
//			cursor.close();
//			close();
//			return gameEntities;
//		}
//
//		@Override
//		public void insertGame(String tableName, GameEntity gameEntity) {
//			open();
//			ContentValues values = new ContentValues();
//
//			values.put(DBDefine.COLUMN_GAME_IID, gameEntity.getIid());
//			values.put(DBDefine.COLUMN_GAME_definition, gameEntity.getDefinition());
//			values.put(DBDefine.COLUMN_GAME_name, gameEntity.getName());
//			values.put(DBDefine.COLUMN_GAME_searchEN, gameEntity.getSearchEN());
//			values.put(DBDefine.COLUMN_GAME_searchVI, gameEntity.getSearchVI());
//			values.put(DBDefine.COLUMN_GAME_url, gameEntity.getUrl());
//			values.put(DBDefine.COLUMN_GAME_id, gameEntity.getId());
//			values.put(DBDefine.COLUMN_GAME_lname, gameEntity.getName());
//			values.put(DBDefine.COLUMN_GAME_laudio, gameEntity.getLaudio());
//			values.put(DBDefine.COLUMN_GAME_lphonetics, gameEntity.getLphonetics());
//			values.put(DBDefine.COLUMN_GAME_lcontext, gameEntity.getLcontext());
//			values.put(DBDefine.COLUMN_GAME_lreminiscence, gameEntity.getLreminiscence());
//			values.put(DBDefine.COLUMN_GAME_ldefinition, gameEntity.getLdefinition());
//			values.put(DBDefine.COLUMN_GAME_slugTopic, gameEntity.getSlugTopic());
//			values.put(DBDefine.COLUMN_GAME_slugSubTopic, gameEntity.getSlugSubTopic());
//			values.put(DBDefine.COLUMN_GAME_slugGameType, gameEntity.getSlugGameType());
//
//			// insert card
//			long id = database.insert(tableName, null, values);
//			Log.d(TAG, "insert::" + id);
//			close();
//		}
//
//		@Override
//		public void updateGame(String tableName, GameEntity gameEntity,
//				String byTopic, String bySubtopic, String byGame) {
//			open();
//			ContentValues values = new ContentValues();
//			
//			values.put(DBDefine.COLUMN_GAME_IID, gameEntity.getIid());
//			values.put(DBDefine.COLUMN_GAME_definition, gameEntity.getDefinition());
//			values.put(DBDefine.COLUMN_GAME_name, gameEntity.getName());
//			values.put(DBDefine.COLUMN_GAME_searchEN, gameEntity.getSearchEN());
//			values.put(DBDefine.COLUMN_GAME_searchVI, gameEntity.getSearchVI());
//			values.put(DBDefine.COLUMN_GAME_url, gameEntity.getUrl());
//			values.put(DBDefine.COLUMN_GAME_id, gameEntity.getId());
//			values.put(DBDefine.COLUMN_GAME_lname, gameEntity.getName());
//			values.put(DBDefine.COLUMN_GAME_laudio, gameEntity.getLaudio());
//			values.put(DBDefine.COLUMN_GAME_lphonetics, gameEntity.getLphonetics());
//			values.put(DBDefine.COLUMN_GAME_lcontext, gameEntity.getLcontext());
//			values.put(DBDefine.COLUMN_GAME_lreminiscence, gameEntity.getLreminiscence());
//			values.put(DBDefine.COLUMN_GAME_ldefinition, gameEntity.getLdefinition());
//			values.put(DBDefine.COLUMN_GAME_slugTopic, gameEntity.getSlugTopic());
//			values.put(DBDefine.COLUMN_GAME_slugSubTopic, gameEntity.getSlugSubTopic());
//			values.put(DBDefine.COLUMN_GAME_slugGameType, gameEntity.getSlugGameType());
//			
//			boolean updateSuccessful = database.update(tableName, values,
//					DBDefine.COLUMN_GAME_ID_KEY + " = ?", // selections
//					new String[] { String.valueOf(gameEntity.getIdKey()) }) > 0; // selection
//			
//			Log.d(TAG, "Update::" + updateSuccessful);
//					
//			close();
//		}
//
//		@Override
//		public void delGame(String tableName, int date) {
//			open();
//
//			int returnKQ = database.delete(tableName, DBDefine.COLUMN_GAME_DATE + " = ?",
//					new String[] { String.valueOf(date) });
//			Log.d(TAG, "Del::" + returnKQ);
//
//			close();
//		}
//
//		@Override
//		public int checkCountDataGame(String tableName, String byTopic,
//				String bySubtopic, String byGame) {
//			open();
//			
//			String selectQuery = "SELECT  * FROM " + tableName + " where " + DBDefine.COLUMN_GAME_slugTopic + "='" + byTopic + "' AND " + DBDefine.COLUMN_GAME_slugSubTopic + "='" + bySubtopic + "' AND " + DBDefine.COLUMN_GAME_slugGameType + "='" + byGame + "'";
//			Cursor cursor = database.rawQuery(selectQuery, null);
//			
//			int count = cursor.getCount();
//			
//			cursor.close();
//			close();
//
//			return count;
//		
//		}
//
//		
//		/** Create 
//		@Override
//		public long createCard(String tableName, DigiCardEntity card) {
//			open();
//			ContentValues values = new ContentValues();
//
//			values.put(DBDefine.COLUMN_FIRSTNAME, card.getFirstName());
//			values.put(DBDefine.COLUMN_LASTNAME, card.getLastName());
//			values.put(DBDefine.COLUMN_DATECARD, card.getDateCard());
//			values.put(DBDefine.COLUMN_PHONE, card.getPhone());
//			values.put(DBDefine.COLUMN_JOB, card.getJob());
//			values.put(DBDefine.COLUMN_ADDRESS, card.getAddress());
//			values.put(DBDefine.COLUMN_WEBSITE, card.getWebsite());
//			values.put(DBDefine.COLUMN_EMAIL, card.getEmail());
//			values.put(DBDefine.COLUMN_CARD_PHOTO_PATH, card.getPhotoCardPath());
//			values.put(DBDefine.COLUMN_AVATAR_PATH, card.getAvatarPath());
//			values.put(DBDefine.COLUMN_NOTE, card.getNotes());
//			values.put(DBDefine.COLUMN_CARDOTHER_PHOTO_PATH, card.getPhotoCardOtherPath());
//			values.put(DBDefine.COLUMN_GROUP, card.getGroup());
//			values.put(DBDefine.COLUMN_GROUP_ID, card.getGroupID());
//
//			// insert card
//			long id = database.insert(tableName, null, values);		
//			close();
//			return id;
//		}*/
//		/** update 
//		@Override
//		public boolean updateCard(String tableName, DigiCardEntity card) {
//			open();
//			ContentValues values = new ContentValues();
//
//			values.put(DBDefine.COLUMN_FIRSTNAME, card.getFirstName());
//			values.put(DBDefine.COLUMN_LASTNAME, card.getLastName());
//			values.put(DBDefine.COLUMN_DATECARD, card.getDateCard());
//			values.put(DBDefine.COLUMN_PHONE, card.getPhone());
//			values.put(DBDefine.COLUMN_JOB, card.getJob());
//			values.put(DBDefine.COLUMN_ADDRESS, card.getAddress());
//			values.put(DBDefine.COLUMN_WEBSITE, card.getWebsite());
//			values.put(DBDefine.COLUMN_EMAIL, card.getEmail());
//			values.put(DBDefine.COLUMN_CARD_PHOTO_PATH, card.getPhotoCardPath());
//			values.put(DBDefine.COLUMN_AVATAR_PATH, card.getAvatarPath());
//			values.put(DBDefine.COLUMN_NOTE, card.getNotes());
//			values.put(DBDefine.COLUMN_CARDOTHER_PHOTO_PATH, card.getPhotoCardOtherPath());
//			values.put(DBDefine.COLUMN_GROUP, card.getGroup());
//
//			boolean updateSuccessful = database.update(tableName, values,
//					DBDefine.COLUMN_CARD_ID + " = ?", // selections
//					new String[] { String.valueOf(card.getId()) }) > 0; // selection
//
//			close();
//			return updateSuccessful;
//		}*/
//		/** delete 
//		@Override
//		public int deleteCard(String tableName, DigiCardEntity card) {
//
//			open();
//
//			int returnKQ = database.delete(tableName, DBDefine.COLUMN_CARD_ID + " = ?",
//					new String[] { String.valueOf(card.getId()) });
//			
//
//			// Util.deletePhotoFromFile(card.getAvatarPath());
//			// Util.deletePhotoFromFile(card.getPhotoCardPath());
//			// Util.deletePhotoFromFile(card.getPhotoCardPath().replaceAll("/card",
//			// "/thumb"));
//			close();
//			return returnKQ;
//		}*/
//		
//		
//		/** ===GET=== 
//		// Getting All Digi Contacts
//		 * @Override
//		public List<DigiCardEntity> getAllContacts(String tableName) {
//			open();
//
//			List<DigiCardEntity> cards = new ArrayList<DigiCardEntity>();
//			String selectQuery = "SELECT  * FROM " + tableName;
//			Cursor cursor = database.rawQuery(selectQuery, null);
//
//			// looping through all rows and adding to list
//			if (cursor.moveToFirst()) {
//				do {
//					DigiCardEntity card = new DigiCardEntity();
//					card.setId(Integer.parseInt(cursor.getString(0)));
//					card.setFirstName(cursor.getString(1));
//					card.setLastName(cursor.getString(2));
//					card.setDateCard(cursor.getString(3));
//					card.setPhone(cursor.getString(4));
//					card.setJob(cursor.getString(5));
//					card.setAddress(cursor.getString(6));
//					card.setWebsite(cursor.getString(7));
//					card.setEmail(cursor.getString(8));
//					card.setPhotoCardPath(cursor.getString(9));
//					card.setAvatarPath(cursor.getString(10));
//					card.setNotes(cursor.getString(11));
//					card.setPhotoCardOtherPath(cursor.getString(12));
//					card.setGroup(cursor.getString(13));
//					card.setGroupID(cursor.getInt(cursor.getColumnIndex(DBDefine.COLUMN_GROUP_ID)));
//
//					// Adding contact to list
//					cards.add(card);
//				} while (cursor.moveToNext());
//			}
//			cursor.close();
//			close();
//			// return contact list
//			return cards;
//		}*/
//}
